package db

import (
	"io/ioutil"

	_ "github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
	"github.com/tidwall/gjson"
)

func Mysql() *sqlx.DB {

	// 读取文件
	mysqlConf, _ := ioutil.ReadFile("config/mysql.json")
	// 文件内容
	mysqlInfo := string(mysqlConf)

	// mysql信息
	mysql_host := gjson.Get(mysqlInfo, "host").String()
	mysql_user := gjson.Get(mysqlInfo, "user").String()
	mysql_pass := gjson.Get(mysqlInfo, "pass").String()
	mysql_port := gjson.Get(mysqlInfo, "port").String()
	mysql_dbname := gjson.Get(mysqlInfo, "dbname").String()
	mysql_charset := gjson.Get(mysqlInfo, "charset").String()

	// 连接MySQL
	mysql, err := sqlx.Open("mysql", mysql_user+":"+mysql_pass+"@tcp("+mysql_host+":"+mysql_port+")/"+mysql_dbname+"?charset="+mysql_charset)
	// 连接失败
	if err != nil {
		panic(err.Error())
	}

	//设置连接池最大连接数
	mysql.SetMaxOpenConns(500)
	//设置连接池最大空闲连接数
	mysql.SetMaxIdleConns(100)

	return mysql
}
